// ----------------------------------------
// Filename: microRTOS.h
// Description: The header for the operating system.
// Author: Jon Maloney
// Date: 8-Jun-2012
//

#ifndef MICRO_RTOS_H
#define MICRO_RTOS_H

//************************************************************
//                    Include .h files
//************************************************************
#include "types.h"
#include "configuration.h"
#include "Linked_List.h"
//************************************************************
//                    Include external references
//************************************************************

//************************************************************
//                    Define Statements
//************************************************************

//************************************************************
//                    Struct, Union, enum Statements
//************************************************************

//A thread control block.
typedef struct
{
	volatile UINT16 * stackPointer;			//A pointer to the top of the threads stack
	PRIORITY Priority;						//The threads priority
	eTASK_STATE currentState;				//The current state of the thread
	kernelTickType WakeOnTickValue;			//The time that the tread will wake
	linkedList_Handle tasksLinkedListNode;	//A pointer to the linked list that the task is contained in
}TCB;

//************************************************************
//                    Global variables and constants
//************************************************************

//************************************************************
//                    Prototype Global Functions
//************************************************************


#endif
